Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollup of 9 pull requests #92844

Merged
merged 40 commits into from
Jan 14, 2022
Merged

Rollup of 9 pull requests #92844

merged 40 commits into from
Jan 14, 2022

Conversation

matthiaskrgr
Copy link
Member

Successful merges:

Failed merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

seanchen1991 and others added 30 commits October 22, 2021 12:21
Sometimes an obligation depends on a later one, so we can't just process them in order like it was done previously.

This is not a problem in our test suite, but there may be ICEs out there and it will definitely be a problem with lazy TAIT.
The issue here is that the logic used to determine which CGU to put the
dead function stubs in doesn't handle cases where a module is never
assigned to a CGU.

The partitioning logic also caused issues in rust-lang#85461 where inline
functions were duplicated into multiple CGUs resulting in duplicate
symbols.

This commit fixes the issue by removing the complex logic used to assign
dead code stubs to CGUs and replaces it with a much simplier model: we
pick one CGU to hold all the dead code stubs. We pick a CGU which has
exported items which increases the likelihood the linker won't throw
away our dead functions and we pick the smallest to minimize the impact
on compilation times for crates with very large CGUs.

Fixes rust-lang#86177
Fixes rust-lang#85718
Fixes rust-lang#79622
Because MIPSr6 has many differences with previous MIPSr2 arch, the previous rlib metadata stripping code in `rustc_codegen_ssa` is only for MIPSr2/r3/r5 (which share the same elf e_flags).
This commit fixed this problem. It makes `rustc_codegen_ssa` happy when compiling rustc for MIPSr6 target or hosts.
It's already a (fat) reference.
Double referencing it creates lifetime issues for its methods that want to return iterators.
As discussed in
rust-lang#92142 (comment),
tests that contain multiple files order their results differently on
Windows and Linux which the test runner currently can't handle
correctly. For now, ignore the "bin" part of the test and only include
the unused library dependency which is what the test really cares about
anyway.
@bors bors added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Jan 13, 2022
@bors
Copy link
Contributor

bors commented Jan 13, 2022

⌛ Testing commit 1a95aa9 with merge d81285bf28f01c030a9f270ae4e7e13b1a4ec8bd...

@bors
Copy link
Contributor

bors commented Jan 14, 2022

💥 Test timed out

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jan 14, 2022
@ehuss
Copy link
Contributor

ehuss commented Jan 14, 2022

@bors retry

arm-android hung

Hung on updating crates.io 😮

2022-01-13T21:55:00.3963632Z Building rustbuild
2022-01-13T21:55:00.5147610Z     Updating crates.io index
2022-01-14T03:01:31.0182310Z ##[error]The operation was canceled.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jan 14, 2022
@rust-log-analyzer
Copy link
Collaborator

A job failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)

@bors
Copy link
Contributor

bors commented Jan 14, 2022

⌛ Testing commit 1a95aa9 with merge f312a5e...

@bors
Copy link
Contributor

bors commented Jan 14, 2022

☀️ Test successful - checks-actions
Approved by: matthiaskrgr
Pushing f312a5e to master...

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (f312a5e): comparison url.

Summary: This change led to very large relevant regressions 😿 in compiler performance.

  • Very large regression in instruction counts (up to 8.2% on full builds of keccak)

If you disagree with this performance assessment, please file an issue in rust-lang/rustc-perf.

Next Steps: If you can justify the regressions found in this perf run, please indicate this with @rustbot label: +perf-regression-triaged along with sufficient written justification. If you cannot justify the regressions please open an issue or create a new PR that fixes the regressions, add a comment linking to the newly created issue or PR, and then add the perf-regression-triaged label to this PR.

@rustbot label: +perf-regression

@rustbot rustbot added the perf-regression Performance regression. label Jan 14, 2022
@matthiaskrgr
Copy link
Member Author

Hm, a lot of regressions :/
@oli-obk do you think this could be related to #92006 ?

@matthiaskrgr
Copy link
Member Author

#92928

@matthiaskrgr matthiaskrgr deleted the rollup-z5wb6yi branch February 13, 2022 00:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. rollup A PR which is a rollup S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.